The present invention relates to a multi-processor system, and more particularly, to a snoop filter for a multi-processor system and a related snoop filtering method.
A multi-processor system becomes popular nowadays due to increasing need of computing power. In general, each processor in the multi-processor system often has its dedicated cache to improve efficiency of memory access. To make processors share memory space, a cache coherency interconnect may be implemented in the multi-processor system to manage cache coherency between these caches dedicated to different processors. Snooping based cache coherence is a widely adopted mechanism in the coherent interconnect. For example, if a cache miss event occurs in a cache, the snooping mechanism is operative to snoop other caches to check if they have the requested cache line. However, most applications have few shared data. That means a large amount of snooping is unnecessary. The unnecessary snooping intervenes with the operations of the snooped caches, resulting in performance degradation of the whole system. Further, the unnecessary snooping also results in redundant power consumption.
A snoop filter may be implemented in the cache coherency interconnect to prevent these unnecessary snooping operations. For example, a conventional directory-based snoop filter may be used to keep a directory for all lines of the shared memory caches. In other words, by checking the snoop filter first, the unnecessary snooping operations can be filtered, hence the system performance is improved and the power consumption is reduced. However, the conventional directory-based snoop filter requires a large-sized memory to record all cache lines existing in the shared memory caches, which results in higher production cost. Thus, there is a need for an innovative cost-effective snoop filter design with relaxed memory requirement.